//
//  ViewController.m
//  NSDate
//
//  Created by apple on 15/8/27.
//  Copyright (c) 2015年 戴维营. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
#if 0
//    以下的这些都是1⃣️本初子午线为参考的日期，不是本地真实时间，
    
//    获取当前时间；
    NSDate *date = [NSDate date];
    NSLog(@"%@",date);
    
//    获取当前时间开始，一天后的日期；
    NSDate *date1 = [[NSDate alloc] initWithTimeIntervalSinceNow:3600*24];
    NSLog(@"%@",date1);
    
//    获取当前时间开始，一天前的时间；
    NSDate *date2 = [[NSDate alloc] initWithTimeIntervalSinceNow:-3600*24];
    NSLog(@"%@",date2);
    
//    通常可以用来转化时间戳；距离1970年323927秒是什么时间；
    NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:323927];
    NSLog(@"%@",date4);
    
//    用可读化字符串的形式输出此时间［真实的时间］；
    NSLocale *locale = [NSLocale currentLocale];
    NSLog(@"date-->%@",[[NSDate date] descriptionWithLocale:locale]);
    
#endif
    
#if 0
    NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:12345];
    NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:2345678];
    
//    返回较早的那个时间日期；
    NSDate *earlyDate = [date1 earlierDate:date2];
    NSLog(@"%@",earlyDate);
    
#endif
    
//    NSDateFormatter---------------------------------------------------------------
    
//    1、需要将日期时间转换成特定格式的字符串；
    
//    2、需要将特定格式的字符串转换成时间日期；
#if 0
//    时间和日期至少要设置一个；
//    先创建一个NSDateFormatter
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    
//    日期样式；
    formatter.dateStyle = NSDateFormatterFullStyle;
//    时间样式；
    formatter.timeStyle = NSDateFormatterFullStyle;
    
    NSString *dateStr = [formatter stringFromDate:[NSDate date]];
    NSLog(@"%@",dateStr);
    
    
//    自定义格式；

//  先创建；
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
//    formatter1.dateFormat = @"yyyy年MM月dd日HH时s秒";
    
    formatter1.dateFormat = @"G-MM-dd 'at' HH:mm";
    
    
    NSString *dateStr1 = [formatter1 stringFromDate:[NSDate date]];
    NSLog(@"%@",dateStr1);
    
#endif
    
//    NSCalendar与NSDateComponents
    
#if 1
    NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
    
//   一次获取一个或者多个值；
    NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:[NSDate date]];
    NSLog(@"%ld/%ld/%ld/%ld/%ld/%ld",components.year,components.month,components.day,components.hour,components.minute,components.second);

//    获取当前时间所在的月份有多少天；
    NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:[NSDate date]];
    NSLog(@"%@",NSStringFromRange(range));
    
    NSTimeInterval ti;//总时长；
    NSDate *date;// 开始时间；
    
//    获取某个时间所在点小时，开始时间为date，总时长为ti;
    if ([calendar rangeOfUnit:NSCalendarUnitMonth startDate:&date interval:&ti forDate:[NSDate dateWithTimeIntervalSinceNow:0]]) {
        NSLog(@"时间: %@: %f",date,ti);
    }
    
#endif
    
    
    

    
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
